package org.wak.scene
{
	import org.wak.baseoneonline.flash.geom.IntPoint;
	
	/**
	 * Contains the data to create a new LItem. 
	 * 
	 */	
	public interface ISceneItemDefinition
	{
		/**
		 * Id of this Scene Item. 
		 * @return the id given for this LItem.
		 * 
		 */		
		function get itemId():String ;
		
		/**
		 * The name of this item .
		 * @return the String with the name for this item.
		 * 
		 */		
		function get itemName():String ;
		
		/**
		 * The description of this item. Is what the character usually says
		 * when he look at this item.
		 * @return the String with the description for this item.
		 * 
		 */		
		function get description():String ;
		
		/**
		 * The coordinates x,y of where this item is placed on the Scene. 
		 * @return an IntPoint containing the coordinates of this item in the scene.
		 * 
		 */		
		function get startingPoint():IntPoint ;
		
		/**
		 * Usually the player's character should walk to the item to interact
		 * with it. Well this is the point where the player will walk before
		 * interact with this item in some way. 
		 * @return IntPoint containing the coordinates of the interaction point.
		 * 
		 */		
		function get interactionPoint():IntPoint ;
		
		/**
		 * animation behaviour to set to the player's character display
		 * after walked to the interaction point. 
		 * @return 
		 * 
		 */		
		function get interactionBehaviour():String ;
		
		
		
		/**
		 * Array of view states of the scene item.  
		 * @return Array of scene item's view.
		 * 
		 */		
		function get viewStates():Array ;
		
		/**
		 * Coordinate value in Y axis which determines when this item should
		 * be displayed over the player's character or in the back.  
		 * @return Y baseline value to set the depth of this item in the Scene.
		 * 
		 */		
		function get baseline():int 
		
		/**
		 * Flag to set the item visible or invisible. 
		 * @return visibility flag.
		 * 
		 */		
		function get visible():Boolean
		
		/**
		 * Flag to set the item enable or disable for action. 
		 * @return action enabled flag.
		 * 
		 */		
		function get enabled():Boolean
		
		
		/**
		 *  
		 * @return true to set this item for unitary use with the Use action 
		 * 
		 */		
		function get unitaryUse():Boolean ;
		
		/**
		 * Action id as default 
		 * @return Action id as default for this object.
		 * 
		 */		
		function get defaultAction():String ;
	}
}